In the field of data switching, the storage of routing information is necessary to enable fast data switching functionality of data switching nodes participating in a data transport network. Data switching nodes are multi-ported data network nodes forwarding Protocol Data Units (PDUs) (also known as Payload Data Units) generated by origination data network nodes and sent over the data transport network towards destination data network nodes. Each data network node has an associated data network node identifier associated therewith.
FIG. 1 is a schematic diagram showing elements implementing general functionality of a data switching node 100.
The data switching node 100, performs a switching function 102 on PDUs received 104 via a plurality of physical ports 106.
Received PDUs (104) are typically stored in processing queues collectively shown in FIG. 1 as PDU processing buffer 108. The invention is not limited to implementations of data switching nodes having PDU processing queues. Implementations of data switching nodes not buffering PDUs for processing exist.
Each PDU includes a header and a payload. The PDU header specifies routing information used by the switching function 102 to determine an output port 106 via which to forward 110 each PDU towards an intended destination data network node. The PDU header includes routing information such as data network node identifiers corresponding to an origination data network node that generated the PDU and a destination data network node for the PDU. One example of a data network node identifier includes a Media Access Control ADDRess (MAC ADDR) which is a unique designation of a type of data transport network interface component. The invention is not limited to MAC ADDR type data network node identifiers.
In performing the switching function 102, the data switching node 100 determines an output port 104 via which to forward each PDU. It is necessary for the switching function 102 to have available information specifying which data network nodes are reachable via a particular physical port 106. For this purpose, received PDUs (104) are inspected by a data network node identifier discovery function of the data switching node 100 shown in FIG. 1 as a MAC ADDR discovery function 120.
For each PDU received via a specific input physical port 106, the MAC ADDR discovery function 120 extracts the origination data network node identifier from the PDU's header and reports 122 the pair including: the physical port designation via which the PDU was received (the input port designation) and the origination data network node identifier of the data network node that generated the PDU; to a switching database. The switching database is shown as a MAC ADDR database 124. A tabular representation thereof includes row entries comprising specifiers holding: a data network node identifier and a port designation.
In processing and forwarding PDUs, the switching function 102 makes use of the switching database 124 to determine output ports 106 via which to forward PDUs. The switching function 102 requests a search 126 of the switching database 124 using as a key the destination data network node identifier extracted from the header of each PDU being processed.
If an entry corresponding to the destination data network node identifier exists in the switching database 124, search 126 provides the corresponding output port 106 via which to forward 110 the PDU.
If an entry corresponding to the destination data network node identifier is not found in the switching database 124, the PDU being processed is flooded to all output ports 106 of the data switching node 100.
Efficient operation of the data switching node 100 and in particular of the switching function 102 is dependent on efficient access to the switching database 124. For this reason implementations of the switching database 124 include hardware implementations.
Hardware implementations of the switching database 124, although necessary, are expensive. The costs related to the development, optimization, and manufacturing thereof. A balance is struck at the design phase of the data switching equipment between the size of the switching database 124 and performance capabilities of the data switching node 100. Having a limited storage capacity, the memory space in the switching database 124 should not be squandered. Switching database entries no longer used have to be discarded to enable the establishment of new associations between ports and data network node identifiers.
An entry aging function 128 is used to police 130 the usage of the memory space of the switching database 124. The entry aging function 128 makes use of a time stamp specifier field associated with each entry in the switching database 124, the time stamp specifier field holding a time value at which the entry was either created or last accessed.
In establishing 122 a new association between a data network node identifier and a port 106, the time stamp specifier is populated with a time value corresponding to the time at which the association was created. In receiving subsequent PDUs with the same association between an origination data network node identifier and port 106 the time stamp specifier corresponding to the entry is refreshed (122). In searching 126 the switching database 124 for a particular entry, the time stamp value of the entry is refreshed.
In identifying stale switching database entries which have not been used for a long period of time, the entry aging function 128 inspects 130 each entry in the switching database 124 to identify entries which were either not created nor accessed within a predetermined period of time expiring at the time of the inspection 130. Subsequent to the identification of stale entries in the switching database 124, the entry aging function 128 makes the memory storage space allocated to stale entries available for further associations to be made.
The operation of the data switching node 100 typically includes a managed mode of operation in which a management processor 150 is used to oversee the function of, and/or augment the available services at, the data switching node 100. In performing its intended function, the management processor 150 maintains a (MAC ADDR) record 152 of the associations between data network node identifiers and corresponding ports 106. As such, the management processor is updated with changes made to the switching database 124.
A typical implementation of the update functionality between the switching database 124 and the MAC ADDR record 152 includes a message queue 154 having a size. The message queue 154 stores a limited number of messages pending processing detailing switching database changes. The size of the message queue 154 limits a number of messages that can be stored therein. Switching database change messages are issued by the MAC ADDR discovery function 120 as schematically shown at 156 and/or the entry aging function 128 as schematically shown at 158.
The issuance of switching database change messages 156 and 158, and the update of the MAC ADDR record 152 are decoupled by the use of the message queue 154. The management processor 150, in performing its function services 160 the message queue 154 by processing pending messages stored therein.
In optimizing the performance of the data switching node 100, design requirements for the switching function 102 call for the utilization of the highest processing power available. The components and methods used to implement the data switching function are at the cutting edge of the technology available at the time of development.
To balance costs, the processing power of the management processor 150 is sacrificed to levels adequate in performing the management of the data switching node 100 and providing the augmented services. A variable in the cost/performance balance with respect to synchronizing the switching database 12 and the MAC ADDR record 152 is the size of the message queue 154. The size of the message queue 154 is typically chosen to provide storage for a predetermined time averaged number of messages expected to await processing in the message queue 154 based on a time averaged performance of the data switching node 100.
Situations arise, as is the case during but not limited to: data network startup, recovery from network failure, excessive requests for the establishment of web browsing connections, intensive bursts of new data traffic, etc. in which a large number of data connection are setup and a corresponding number of entries of the switching database 124 are changed. In such instances the message storage capacity of the message queue 154 is exceeded. As a result, the MAC ADDR discovery function 120 is temporarily halted.
Subsequent to a network failure, the entry aging function 128 discards a large number of entries in the switching database generating a large number of switching database change messages 158.
Compounding the situation, the management processor 150 typically cannot service the queue 154 fast enough and the message queue 154 fills up.
Current implementations of the managed mode of operation of data switching equipment such as the data network node 100 prevent the successful establishment of the association between newly discovered data network node identifiers and corresponding ports, without successfully queuing the message 156 in the message queue 154. The MAC ADDR discovery function 120 is temporarily halted in order to prevent potential loss of information synchronization between the switching database 124 and the MAC ADDR record 152, which compounds the problem because of the above mentioned behavior of data switching equipment according to which PDUs having an unknown output port 106 to be forwarded to, are flooded to all output ports 106 of the data switching node 100.
A common method of conveying PDUs across a data transport network includes the breakup of large PDUs (themselves being a part of a sequences of PDUs) into a subsequences of PDUs of a smaller size (in accordance with data transport protocols based on bandwidth availability at intermediary data transport equipment). A times during which the message queue 154 is full, all subsequence PDUs are flooded to all ports 106 severely impacting data throughput at the data switching node 100.
There therefore is a need to smooth out the synchronization of burst changes of the information held in the switching database during a managed mode of operation of the data switching node.